#pragma once
#include <string>
#include <vector>
#include "Monster.h"
#include "Player.h"
#include "ActionableObject.h"

class Monster;

class Room
{
    public:
        Room(std::string name, std::vector<Room> connectingRooms, std::vector<ActionableObject> actionableObjects,
              std::string* monstersInRoom, std::string* itemsInRoom)
        {
            roomName = name;
            connectingRooms = this->connectingRooms;
            monstersInroom = this->monstersInroom;
            itemsInRoom = this->itemsInRoom;
        }

        std::vector<Monster> getMonstersInRoom();
        std::string* getItemsInRoom();
        std::vector<Room> getConnectingRooms();
        std::string getRoomName();
        std::string getEntryText();
        std::string getExitText();
        std::string getRoomDescription();
        virtual ~Room();
    protected:
    private:
        std::string* itemsInRoom;
        std::vector<Room> connectingRooms;
        std::vector<Monster> monstersInroom;
        std::string roomName;
        std::string entryText;
        std::string exitText;
        std::string roomDescription;
};

